วิธีการย้ายข้อมูลของ Amazon S3 ไปยัง Region อื่นโดยใช้ฟังก์ชั่น Cross Region Replication

วิธีการย้ายข้อมูลของ Amazon S3 ไปยัง Region อื่นโดยใช้ฟังก์ชั่น Cross Region Replication

บทความนี้จะมาแนะนำวิธีการ transfer ข้อมูลของ Amazon S3 ไปยัง Region อื่น เพื่อเป็นประโยชน์สำหรับผู้ที่ต้องการย้ายข้อมูลไปยัง AWS Thailand Region

ทำไมถึงใช้การ Replication

การ replication ถูกใช้เพื่อคัดลอก object แบบอัติโนมัติและ asynchronous ของ S3 bucket ต้นทางไปยัง S3 bucket ปลายทางเดียวหรือหลายปลายทาง โดยอยู่ใน Region เดียวกันหรือต่าง Region ก็ได้

ดังนั้นเราสามารถใช้วิธีการนี้ในการย้ายข้อมูลจาก bucket ไปยัง bucket ได้อย่างง่ายดาย

กรณีที่ใช้ Cross-Region Replication

ใช้สำหรับคัดลอก object ระหว่าง S3 bucket ใน Region ที่แตกต่างกัน นอกจากนี้ยังช่วย :

  • ปฏิบัติตาม compliance requirements : ถึงแม้ว่า Amazon S3 จะจัดเก็บข้อมูลในหลาย Availability Zone ซึ่งกระจายอยู่ทั่วโลก แต่บางพื้นที่ก็มีข้อกำหนดที่แตกต่างกัน ซึ่งต้องทำตาม เช่น ต้องจัดเก็บข้อมูลในระยะทางที่ไกลกว่านั้น ดังนั้นจึงต้องใช้ Cross-Region Replication
  • ลด latency : สามารถเลือกพื้นที่การให้บริการกับลูกค้าที่อยู่ใกล้และมี latency ต่ำที่สุดได้
  • เพิ่มประสิทธิภาพการปฏิบัติงาน : หากคุณมีคลัสเตอร์การประมวลผลใน Region AWS ที่แตกต่างกันสองแห่งซึ่งวิเคราะห์ชุด object เดียวกัน เราอาจเลือกที่จะรักษา object copies ใน Region เหล่านั้น

สิ่งที่ต้องมี

สร้าง S3 bucket ต้นทางใน Region สิงคโปร์และ Region ที่ต้องการจะย้ายข้อมูลไป โดยในบทความนี้จะใช้ Region ไทยเป็นปลายทาง

สามารถดูวิธีการสร้าง S3 bucket ได้ที่บทความด้านล่างในหัวข้อ “การสร้าง Buckets ใน Amazon S3”

https://dev.classmethod.jp/articles/how-to-use-s3-from-ec2-and-using-aws-cli-s3/#toc--buckets--amazon-s3

โดยในบทความนี้จะทำการสร้าง S3 bucket ขึ้นมา 2 ตัวตามภาพด้านล่าง
โดย S3 bucket ต้นทางคือ “singapore-region-cmth” และ S3 bucket ปลายทางคือ “thailand-region-cmth”

S3 transfer-1

และใน S3 bucket ต้นทางให้ upload ไฟล์ข้อมูลเอาไว้

S3 transfer-13

ขั้นตอนการทำ

ให้คลิกไปที่ S3 bucket ต้นทางนั่นคือสิงคโปร์ จากนั้นเลือกหัวข้อ Management

S3 transfer-2

เลื่อนลงมาที่หัวข้อ Replication rules แล้วคลิกที่ “Create replication rule”

S3 transfer-3

คลิกที่ “Enable Bucket Versioning” เพื่อเปิดใช้งานฟังก์ชั่น

S3 transfer-4

ตั้งชื่อ rule ตามที่ต้องการ

S3 transfer-5

หัวข้อ Source bucket ให้เลือก “Apply to all objects in the bucket”

S3 transfer-6

เลื่อนมาที่หัวข้อ Destination เลือก S3 bucket ปลายทางที่สร้างไว้ ซึ่งในบทความนี้จะเลือกเป็น “thailand-region-cmth” และให้ทำการเปิดใช้งาน Enable Versioning ด้วย

S3 transfer-7

ที่หัวข้อ IAM role เลือกเป็น “Create new role” จากนั้นเลื่อนมาด้านล่างสุดแล้วคลิก “Save”

S3 transfer-8

จะมีหน้าต่างปรากฏขึ้นมา เนื่องจากเราทำการสร้าง S3 Bucket ปลายทางอยู่แล้ว ให้เลือก “Yes, replicate existing objects.” เพื่อคัดลอกข้อมูลทั้งหมดจาก S3 bucket ต้นทางไปยัง S3 bucket ปลายทาง แล้วคลิก “Submit”

S3 transfer-9

หลังจากนั้นจะให้สร้าง job ขึ้นมา ให้ทำการเลือกที่จัดเก็บ report ตามต้องการ ซึ่งในบทความนี้จะเลือก bucket ปลายทางเป็นที่จัดเก็บ และเลือก IAM role เป็น “Create new role” ตามด้วยคลิก “Save”

S3 transfer-10
S3 transfer-11

เพียงเท่านี้การสร้าง job ก็เสร็จเรียบร้อย

S3 transfer-12

เมื่อตรวจสอบ bucket ปลายทางก็จะพบว่ามีข้อมูลเหมือนกับ bucket ต้นทาง โดยใช้เวลาในการคัดลอกข้อมูลประมาณ 2 นาที ขึ้นอยู่กับปริมาณและขนาดของข้อมูล

S3 transfer-14

วิธีนี้ไม่ใช่แค่การคัดลอกข้อมูลเท่านั้น แต่ยังช่วยซิงค์ข้อมูลระหว่าง bucket ตลอดเวลาอีกด้วย
เมื่อทำการอัพโหลดข้อมูลใหม่เข้าไปที่ bucket ต้นทาง
ไฟล์ข้อมูลก็จะไปปรากฏบน bucket ปลายทาง

S3 transfer-15
S3 transfer-16

วิธียกเลิกการ Replication

เมื่อทำการ Replication และคัดลอกข้อมูลจาก Bucket ต้นทางมาเสร็จแล้ว เราสามารถยกเลิกการ Replication ได้
มิฉะนั้น ก็จะมีข้อมูลเพิ่มขึ้นมาเรื่อยๆใน bucket ปลายทาง เมื่อมีการเพิ่มข้อมูลใน bucket ต้นทาง

หากต้องการหยุดการซิงค์ข้อมูล สามารถทำได้โดยเข้าไปที่หัวข้อ Replication rules ของ bucket ต้นทางที่เราสร้างไว้
จากนั้นทำการเลือกและคลิก “Delete ”

S3 transfer-17

จะมีหน้าต่างยืนยันอีกรอบ ให้คลิก “Delete replication rule”

S3 transfer-18

สำหรับ bucket ต้นทาง หากไม่ได้ใช้งานแล้วให้ทำการลบทิ้งด้วย
สามารถดูวิธีการได้ที่นี่

หากทำตามขั้นตอนในบทความนี้ IAM role จะถูกสร้างขึ้นอัติโนมัต โดยมีชื่อว่า s3crr_role_for และ s3replicate_role_for
สามารถดูขั้นตอนการลบได้ที่นี่

S3 transfer-19

สรุป

การ Cross Region Replication จะช่วยให้เราสามารถสำรองข้อมูลไว้ที่อื่น ในกรณีที่ bucket หลักเกิดปัญหาได้ นอกจากนี้ยังสามารถคัดลอกข้อมูลเพื่อทำการย้ายข้อมูลไปยัง Region อื่น ซึ่งตอบโจทย์สำหรับผู้ที่ต้องการย้ายมาใช้ AWS Thailand Region

บทความที่เกี่ยวข้อง

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.